package controle;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import modelo.Song;

/*Esta anotação indica que se trata de um conversor JSF, com alias “songConverter”*/
@FacesConverter("songConverter")
public class SongConverter implements Converter {

  /* Este método recebe como entrada um texto e o converte para o tipo correto do dado
   Utilizado no sentido usuário >> tela >> sistema */
  @Override
  public Object getAsObject(FacesContext context, UIComponent component, String value) {
    Song song = new Song();
    song.setTitle(value);
    return song;
  }

  /* Este método recebe um objeto e o converte para texto, para ser exibido na página
  Utilizado no sentido sistema >> tela >> usuário */
  @Override
  public String getAsString(FacesContext context, UIComponent component, Object value) {
    Song song = (Song) value;
    return "Song: " + song.getTitle();
  }  
}
